package org.jeecg.modules.student.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.config.mybatis.TenantContext;
import org.jeecg.modules.common.baseentity.PublicBeanPage;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Data
@TableName("stu_student")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@ToString(callSuper = true)
@SuperBuilder(toBuilder = true)
@ApiModel(value="stu_student对象", description="stu_student")
public class StuStudentVo extends PublicBeanPage {
    private static final long serialVersionUID = 1L;


    /**主键ID*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键ID")
    private java.lang.String id;
    /**年级*/
    @Excel(name = "年级", width = 15)
    @ApiModelProperty(value = "年级")
    @Dict(dicCode = "id",dicText = "grade_name",dictTable = "cou_grade")
    private java.lang.String gradeId;

    /**班级*/
    @Excel(name = "班级", width = 15)
    @ApiModelProperty(value = "班级")
    @Dict(dicCode = "id",dicText = "class_name",dictTable = "cou_class")
    private java.lang.String classId;
    /**目标新班级（编辑调换班级时候用）*/
    @Excel(name = "目标新班级（编辑调换班级时候用）", width = 15)
    @ApiModelProperty(value = "目标新班级（编辑调换班级时候用）")
    @Dict(dicCode = "id",dicText = "class_name",dictTable = "cou_class")
    @TableField(exist = false)
    private java.lang.String targetNewClassId;

    /**学生学号*/
    @Excel(name = "学生学号", width = 15)
    @ApiModelProperty(value = "学生学号")
    private java.lang.String studentNo;
    /**学生姓名*/
    @Excel(name = "学生姓名", width = 15)
    @ApiModelProperty(value = "学生姓名")
    private java.lang.String studentName;
    /**学生显示顺序*/
    @Excel(name = "排序号", width = 15)
    @ApiModelProperty(value = "排序号")
    private java.lang.String studentOrder;
    /**身份证号*/
    @Excel(name = "身份证号", width = 15)
    @ApiModelProperty(value = "身份证号")
    private java.lang.String studentIdCardNo;

    /**学籍号*/
    @Excel(name = "学籍号", width = 15)
    @ApiModelProperty(value = "学籍号")
    private java.lang.String studentNationalityNo;
    /**学生性别*/
    @Excel(name = "学生性别", width = 15, dicCode = "sex")
    @Dict(dicCode = "sex")
    @ApiModelProperty(value = "学生性别")
    private java.lang.Integer studentGender;
    /**出生年月*/
    @Excel(name = "出生年月", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "出生年月")
    private java.util.Date studentDateBirth;
    /**民族*/
    @Excel(name = "民族", width = 15, dicCode = "common_nation")
    @Dict(dicCode = "common_nation")
    @ApiModelProperty(value = "民族")
    private java.lang.Integer studentNation;
    /**联系电话*/
    @Excel(name = "联系电话", width = 15)
    @ApiModelProperty(value = "联系电话")
    private java.lang.String studentTelephone;
    /**入学年份届级，如2022级*/
    @Excel(name = "入学年份届级", width = 15)
    @Dict(dicCode = "gradesession_year_code",dicText = "gradesession_year_name",dictTable = "cou_gradesession_year")
    @ApiModelProperty(value = "入学年份届级，如2022级")
    private java.lang.String studentEnrollmentYear;
    /**卡号*/
    @Excel(name = "卡号", width = 15)
    @ApiModelProperty(value = "卡号")
    private java.lang.String studentCardNo;
    /**学生微信*/
    @Excel(name = "学生微信", width = 15)
    @ApiModelProperty(value = "学生微信")
    private java.lang.String studentWechat;
    /**学生邮箱*/
    @Excel(name = "学生邮箱", width = 15)
    @ApiModelProperty(value = "学生邮箱")
    private java.lang.String studentEmail;
    /**学生QQ*/
    @Excel(name = "学生QQ", width = 15)
    @ApiModelProperty(value = "学生QQ")
    private java.lang.String studentQq;
    /**身高*/
    @Excel(name = "身高", width = 15)
    @ApiModelProperty(value = "身高")
    private java.lang.Double studentHeight;
    /**体重*/
    @Excel(name = "体重", width = 15)
    @ApiModelProperty(value = "体重")
    private java.lang.Double studentWeight;
    /**视力*/
    @Excel(name = "视力", width = 15)
    @ApiModelProperty(value = "视力")
    private java.lang.Double studentVision;
    /**来源学校*/
    @Excel(name = "来源学校", width = 15)
    @ApiModelProperty(value = "来源学校")
    private java.lang.String studentFromSchool;
    /**毕业去向*/
    @Excel(name = "毕业去向", width = 15)
    @ApiModelProperty(value = "毕业去向")
    private java.lang.String studentGraduationDestination;
    /**户籍地址*/
    @Excel(name = "户籍地址", width = 15)
    @ApiModelProperty(value = "户籍地址")
    private java.lang.String studentHouseholdRegister;
    /**生源地*/
    @Excel(name = "生源地", width = 15)
    @ApiModelProperty(value = "生源地")
    private java.lang.String studentPlaceOrigin;
    /**现住地址*/
    @Excel(name = "现住地址", width = 15)
    @ApiModelProperty(value = "现住地址")
    private java.lang.String studentCurrentAddress;
    /**学生类型（1正常升学，2留级，3跳级）*/
    @Excel(name = "学生类型（1正常升学，2留级，3跳级）", width = 15, dicCode = "student_ttype")
    @Dict(dicCode = "student_ttype")
    @ApiModelProperty(value = "学生类型（1正常升学，2留级，3跳级）")
    private java.lang.Integer studentTtype;
    /**家庭状态（1正常，2离异，3单亲(丧)，4孤）*/
    @Excel(name = "家庭状态（1正常，2离异，3单亲(丧)，4孤）", width = 15, dicCode = "student_family_status")
    @Dict(dicCode = "student_family_status")
    @ApiModelProperty(value = "家庭状态（1正常，2离异，3单亲(丧)，4孤）")
    private java.lang.Integer studentFamilyStatus;
    /**是否贫困生*/
    @Excel(name = "是否贫困生", width = 15, dicCode = "student_poor")
    @Dict(dicCode = "student_poor")
    @ApiModelProperty(value = "是否贫困生")
    private java.lang.Integer studentPoor;
    /**贫困级别*/
    @Excel(name = "贫困级别", width = 15, dicCode = "student_poor_level")
    @Dict(dicCode = "student_poor_level")
    @ApiModelProperty(value = "贫困级别")
    private java.lang.Integer studentPoorLevel;
    /**是否借读生*/
    @Excel(name = "是否借读生", width = 15, dicCode = "student_load")
    @Dict(dicCode = "student_load")
    @ApiModelProperty(value = "是否借读生")
    private java.lang.Integer studentLoan;
    /**特殊标识*/
    @Excel(name = "特殊标识", width = 15)
    @ApiModelProperty(value = "特殊标识")
    private java.lang.Integer studentSpecialFlag;
    /**紧急联系人*/
    @Excel(name = "紧急联系人", width = 15)
    @ApiModelProperty(value = "紧急联系人")
    private java.lang.String studentEmergencyContact;
    /**紧急人联系电话*/
    @Excel(name = "紧急人联系电话", width = 15)
    @ApiModelProperty(value = "紧急人联系电话")
    private java.lang.String studentEmergencyTelephone;
    /**学生状态(1正常，2休学，3退学，4转出，5转入，6毕业）*/
    @Excel(name = "学生状态(1正常，2休学，3退学，4转出，5转入，6毕业）", width = 15, dicCode = "student_status")
    @Dict(dicCode = "student_status")
    @ApiModelProperty(value = "学生状态(1正常，2休学，3退学，4转出，5转入，6毕业）")
    private java.lang.Integer studentStatus;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String studentRemark;
    /**是否启用*/
    @Excel(name = "是否启用", width = 15, dicCode = "iz_open")
    @Dict(dicCode = "iz_open")
    @ApiModelProperty(value = "是否启用")
    private java.lang.Integer studentIzOpen=1;

    /**用户id*/
    @Excel(name = "用户id）", width = 15)
    @ApiModelProperty(value = "用户id")
    @Dict(dicCode = "id",dicText = "username",dictTable = "sys_user")
    private String userId;
    /**是否删除*/
    @Excel(name = "是否删除", width = 15)
    @ApiModelProperty(value = "是否删除")
    @Dict(dicCode = "iz_delete")
    private java.lang.Integer studentIzDelete=0;
    /**createTime*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "createTime")
    private java.util.Date createTime;
    /**导入批次*/
    @Excel(name = "导入批次", width = 15)
    @ApiModelProperty(value = "导入批次")
    private java.lang.String batchNumber;

//    /**一键查询字段*/
//    @ApiModelProperty(value = "一键查询字段")
//    @TableField(exist = false)
//    private java.lang.String queryValues; //放在父类PublicBeanPage中
}
